The present invention relates to computer network printing systems and specifically to a dynamically shared printer interface which can dynamically calculate the capability of network printers and route print jobs to the best available printer.
Conventionally in computer networks, printers are shared among various users. Most users in the Windows environment have installed multiple printer drivers on their systems and a particular printer is selected as a default printer. The default printer may be a standalone printer or a network printer that may be utilized by other users. Whenever a user wants to print, a print job is sent to the default printer, unless the user selects another printer before sending the print job.
There are various factors that determine the capability of a printer to print a certain job at any given time, for example printer engine speed, printer memory size and/or number and nature of print jobs in the printer queue. Hence a default printer may not always be the best printer to print a certain job because of low printer engine speed, small printer memory size and/or numerous print jobs that may already be waiting in the print queue. Hence for optimum utilization of printer resources in a computer network it is essential to know the capability of a printer before a print job is sent to that printer.
Currently, if a user is aware that a default printer has numerous print jobs in the printer queue, the user may select another printer manually. However this process is time consuming and inefficient because a user has to manually evaluate individual printers and assess their capabilities every time a print job needs to be completed. Current network printing systems do not dynamically evaluate printer capability that is based upon a printer""s engine speed, memory size and the size and/or nature of the print job in the printer queue at the time a user wants to print.
Another shortcoming of current network printing systems is that there are no mechanisms by which a print job is automatically re-routed to the next best available printer, if the original printer gets jammed or otherwise develops an error preventing the printer from successfully completing the print job. In the prior art there are mechanisms that allow an error message to be sent to the user, however if the user is not available, the print job is not automatically re-routed to the next available printer suitable for completing the print job. Hence there is a need for a dynamic printer interface that can ascertain the capabilities of network printers prior to routing a print job and also provide a degree of fault tolerance by re-routing the print job if the printer develops an error during printing.
It is therefore the object of the present invention to provide a printing system that addresses the foregoing problems of conventional network printing systems by evaluating the size and complexity of a print job, estimating the work load for printing a print job, querying network printers for printer capability information, calculating the capabilities of the printers in response to the query, comparing the printer capability with the estimated workload and selecting the most optimum printer for the print job.
In another aspect, the invention provides a printing system that notifies a user of any printer error that occurs during printing, re-routes the print job to the next best available printer and then informs the user of the printer to which the print job is re-routed.
More specifically, the present invention concerns a dynamically distributed shared printer interface (DDSPI), which is a software module located either on a network server or on a user""s personal computer, and calculates the estimated workload to a print a certain print job, queries the printers that are preferred by the user for printer capability information, receives printer capability information from the printers, compares printer capability with the estimated printer workload and routes the print job to the best available printer for the print job. Before a print job is sent to a particular printer, a user chooses a set of printers where a user prefers to print jobs. The set of printers constitutes a preferred printer list (PPL), which is stored in a location from where the DDSPI can access the PPL preferably on the network server.
At any given time, the user sends a print request to the DDSPI, which calculates the estimated workload required to print the job. The estimated workload is designated as the task allocation property (TAP) and is based upon the size and complexity of the print job. Thereafter, the DDSPI sends a multi-cast to the printers in the user defined PPL, requesting each printer to calculate its printer capability as a printer power index, which is then returned to the DDSPI. Thereafter, the DDSPI compares the task allocation property of the print job with the printer power indexes of the printers in the preferred printer list and the printer with the printer power index value closest to the TAP is selected to print the job.
The printers in the preferred printer list that are up and running at the instance of the DDSPI multicast calculate their own printer capability and transmit it back to the DDSPI. The printer capability, designated as printer power index is based upon the printer engine speed, printer memory size, size, complexity and number of other print jobs that are already in the printer queue. The printer receiving the multi-cast calculates the printer power index that is based upon the above factors and sends the printer power index to the DDSPI.
Hence the present invention efficiently utilizes printing resources in a computer network because the most suitable printer is chosen to print a certain print job. Furthermore, since the printer capability is calculated real time that is every time a print job is requested, the present invention determines printer capability dynamically and hence consistently uses the most optimum printer for a print job.
In yet another aspect of the invention, the printing system of the present invention provides a fault tolerance if the above chosen network printer develops an error and is unable to successfully complete the printing process. When the printer chosen for the print job develops an error while printing, the printer notifies the DDSPI, which in turn notifies all the users that may have a job in the printer queue. Thereafter, DDSPI re-sends a multi-cast to the other printers in the PPL requesting printer capability information, designated as printer power index.
The printers receiving the re-sent multi-cast re-calculate their own capability based upon printer engine speed, printer memory size, number, size and complexity of print jobs in the printer queue at the instant the re-sent multi-cast is received. The re-calculated printer power index is sent to the DDSPI and thereafter the re-sent PPI""s are compared to the task allocation property of the print job. The DDSPI re-routes the print job to the printer with the PPI closest to the TAP and notifies the user of the printer identity.
Therefore, the present invention provides a fault tolerance to a network printing system by effectively notifying the user of printer error""s and re-routing print jobs to the next best available printer in the network and hence printing resources are efficiently utilized.
This brief summary has been provided so that the nature of the invention may be understood quickly. A more complete understanding of the invention can be obtained by reference to the following detailed description of the preferred embodiments thereof in connection with the attached drawings.